home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 02 / 3 / DISK0238.ZIP / CVTBIN.BAS < prev    next >
BASIC Source File  |  1984-10-06  |  2KB  |  76 lines

  1. 10 ' CVTBIN.BAS
  2. 20 '
  3. 30 ' Written by Wes Meier (76703,747)
  4. 40 '
  5. 50 ' Version 082584
  6. 60 '
  7. 70 ' Converts CIS (Intel HEX format) .BIN files to true Binary files. **YOU**
  8. 80 ' have to decide whether the file is a .COM or .EXE file.
  9. 90 '
  10. 100 KEY OFF
  11. 110 COLOR 6,1,1
  12. 120 CLS
  13. 130 DEFINT A-Z
  14. 140 FF = 256
  15. 150 PRINT TAB(21)"CVTBIN ...by Wes Meier (76703,747)..."
  16. 160 PRINT
  17. 170 N$ = "0123456789ABCDEF"
  18. 180 DEF FN H(X$) = 16 * (INSTR(N$, LEFT$(X$,1)) - 1) + INSTR(N$, RIGHT$(X$,1)) - 1
  19. 190 ON ERROR GOTO 580
  20. 200 INPUT "Input filespec: ";INPUTFILE$
  21. 210 IF INPUTFILE$ = "" THEN END
  22. 220 OPEN"I",1,INPUTFILE$
  23. 230 INPUT "Output filespec: ";OUTPUTFILE$
  24. 240 IF OUTPUTFILE$ = "" THEN END
  25. 250 OPEN"I",2,OUTPUTFILE$
  26. 260 CLOSE 2
  27. 270 PRINT OUTPUTFILE$" already exists. Overwrite it?"
  28. 280 X$ = INPUT$(1)
  29. 290 IF X$ < > "Y" AND X$ < > "y" THEN 230
  30. 300 OPEN OUTPUTFILE$ AS 2 LEN=1
  31. 310 FIELD 2, 1 AS T$
  32. 320 PRINT
  33. 330 PRINT "Working...."
  34. 340 LNUM = 0
  35. 350 WHILE NOT EOF(1)
  36. 360   LNUM = LNUM + 1
  37. 370   INPUT #1,A$
  38. 380   IF LEN(A$) = 0 THEN 510
  39. 390   IF LEFT$(A$,1) < > ":" THEN ERROR 80
  40. 400   IF LEN(A$) - 11 < > 2 * FN H(MID$(A$,2,2)) THEN ERROR 81
  41. 410   CS = 0
  42. 420   FOR X = 2 TO LEN(A$) - 2 STEP 2
  43. 430    T = FN H(MID$(A$,X,2))
  44. 440    CS = T + CS
  45. 450    IF X > 9 THEN LSET T$ = CHR$(T) : PUT 2
  46. 460   NEXT
  47. 470   CS = CS MOD 256
  48. 480   ACS = FF - FN H(RIGHT$(A$,2))
  49. 490   IF CS < > ACS AND CS < > 0 THEN ERROR 82
  50. 500 WEND
  51. 510 CLOSE
  52. 520 PRINT
  53. 530 PRINT "Conversion complete."
  54. 540 END
  55. 550 '
  56. 560 ' Error Trapping Routines
  57. 570 '
  58. 580 IF ERL = 220 THEN PRINT INPUTFILE$" not found." : RESUME 200
  59. 590 IF ERL = 250 THEN RESUME 300
  60. 600 BEEP
  61. 610 IF ERR = 80 THEN RESUME 650
  62. 620 IF ERR = 81 THEN RESUME 670
  63. 630 IF ERR = 82 THEN RESUME 690
  64. 640 ON ERROR GOTO 0
  65. 650 PRINT INPUTFILE$" is not a .BIN file. Missing "CHR$(34)":"CHR$(34)". ";
  66. 660 GOTO 710
  67. 670 PRINT "Data length error. Line length doesn't match.";
  68. 680 GOTO 710
  69. 690 PRINT "Checksum Error in line"LNUM"."
  70. 700 PRINT A$
  71. 710 PRINT " Program aborted."
  72. 720 CLOSE
  73. 730 KILL OUTPUTFILE$
  74. 740 END
  75. 750 ' of CVTBIN.BAS
  76.